/*
 * IntroState.h
 *
 *  Created on: 19.11.2009
 *      Author: Sergej Schmidt
 */

#ifndef INTROSTATE_H_
#define INTROSTATE_H_

#include <Ogre.h>
#include <OIS.h>
#include <MyGUI.h>

#include "GameState.h"

class IntroState: public GameState
{
public:
	void enter();
	void exit();
	void pause();
	void resume();

	bool frameStarted( const Ogre::FrameEvent& evt );
	bool frameEnded( const Ogre::FrameEvent& evt );

	void keyPressed( const OIS::KeyEvent& e );
	void keyReleased( const OIS::KeyEvent& e );

    void mouseMoved( const OIS::MouseEvent &e );
    void mousePressed( const OIS::MouseEvent &e, OIS::MouseButtonID id );
    void mouseReleased( const OIS::MouseEvent &e, OIS::MouseButtonID id );

    static IntroState* getInstance() { return &m_pIntroState; }
protected:
	IntroState() { }

	Ogre::Root*				m_pRoot;
	Ogre::SceneManager*		m_pSceneMgr;
	Ogre::Viewport*			m_pViewport;
	Ogre::Camera*			m_pCamera;

	// Splash screen
	MyGUI::Gui*				m_pGui;
	MyGUI::StaticImage*		m_pSplashOgre;

	bool m_bExitGame;
private:
	static IntroState m_pIntroState;
};
#endif /* INTROSTATE_H_ */
